package com.captain.leetcode.动态规划;

/**
 * Des:
 *
 * @author XL
 * @Date 2022/1/5 22:01
 */
public class 打家劫舍198 {
    public int rob(int[] nums) {
        //dp[i] 下标i（包括i）以内的房屋,最多偷窃的金额为dp[i]。
        //如果 i 不取 , 则dp[i] = dp[i - 1] , 如果要取 dp[i] = dp[i - 2] + nums[i];
        int len = nums.length;
        if (len == 0) return 0;
        if (len == 1) return nums[0];
        int[] dp = new int[len + 1];
        dp[0] = nums[0];
        dp[1] = Math.max(nums[0], nums[1]);
        for (int i = 2; i < len; i++) {
            dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i]);
        }
        return dp[len - 1];
    }

    public static void main(String[] args) {
        System.out.println(new 打家劫舍198().rob(new int[]{1,2}));

    }
}
